name: CI
on: [push, pull_request]
env:
  OPENAI_API_KEY: xxx
  AZURE_OPENAI_API_HOST: xxx
  ANTHROPIC_API_KEY: xxx
jobs:
  build:
    name: Build, lint, and test on Node ${{ matrix.node }} and ${{ matrix.os }}

    runs-on: ${{ matrix.os }}
    strategy:
      matrix:
        node: ['16.x', '18.x', '20.x']
        python: ['3.7']
        os: [ubuntu-latest, windows-latest, macOS-latest]

    steps:
      - name: Checkout repo
        uses: actions/checkout@v3

      - name: Use Node ${{ matrix.node }}
        uses: actions/setup-node@v3
        with:
          node-version: ${{ matrix.node }}

      - name: Use Python ${{ matrix.python }}
        uses: actions/setup-python@v2
        with:
          python-version: ${{ matrix.python }}

      - name: Install deps and build (with cache)
        uses: bahmutov/npm-install@v1

      - name: Test
        run: npm run test --ci --coverage --maxWorkers=2

      - name: Build
        run: npm run build
